package br.com.spam.pipeline.core;

import br.com.spam.pipeline.phase.PipelinePhase;

public enum ControlSignal
{
	RegDst(PipelinePhase.EX), //
	ALUSrcA(PipelinePhase.EX), //
	ALUSrcB(PipelinePhase.EX), //
	ALUOp(PipelinePhase.EX), //
	MemWrite(PipelinePhase.MEM), //
	MemRead(PipelinePhase.MEM), //
	Branch(PipelinePhase.EX), //
	BranchCondition(PipelinePhase.EX), //
	Jump(PipelinePhase.ID_RF), //
	MemToReg(PipelinePhase.WB), //
	RegWrite(PipelinePhase.WB); //

	private final PipelinePhase phase;

	private ControlSignal(PipelinePhase phase)
	{
		this.phase = phase;
	}

	public PipelinePhase getPhase()
	{
		return this.phase;
	}
}
